package com.yuju.vo.order;

import java.math.BigDecimal;
import java.util.Date;

import com.yuju.common.BaseVO;
import com.yuju.common.fileld.validator.Rule.NonNull;
/**
 * 
 * 类名：RoomOrderGuestVO  <br />
 *
 * 功能：
 *
 * @author : sunyl <br />
 * @Date : 2017年11月25日 下午4:30:44  <br />
 * @version : 1.1 <br />
 */
public class RoomOrderVO extends BaseVO {

	// 每页显示记录数
	@NonNull(message = "每页显示行数不能为空", serviceLine = "pager")
	public Integer pageSize;
	
	// 当前页码
	@NonNull(message = "页数不能为空", serviceLine = "pager")
	public Integer page;
	
	/**
	 * 员工
	 */
	@NonNull(message = "员工Id不能为空", serviceLine = "apartment,formOrder")
	private String empId;
	
   public String getEmpId() {
		return empId;
	}

	public void setEmpId(String empId) {
		this.empId = empId;
	}

public Integer getPageSize() {
		return pageSize;
	}

	public void setPageSize(Integer pageSize) {
		this.pageSize = pageSize;
		this.setRows(this.pageSize);
	}

	public Integer getPage() {
		return page;
	}

	public void setPage(Integer page) {
		this.page = page;
	}

    /**
     *  房管状态。1为开启，2为未开启，默认为2。,所属表字段为ord_room_order.room_manage_status
     */
    private Byte roomManageStatus;

    /**
     *  房管信息。,所属表字段为ord_room_order.room_manage_info
     */
    private String roomManageInfo;
	
	 /**
     *  主键。存储UUID，由应用生成。,所属表字段为ord_room_order.id
     */
	@NonNull(message = "主键不能为空", serviceLine = "update,del")
    private String id;

	/**
     *  房间订单编号。,所属表字段为ord_room_order.room_order_no
     */
    private String roomOrderNo;
    /**
     *  所属集团。外键，引用集团信息表（grp_group）的主键（id）。,所属表字段为ord_room_order.group_id
     */
    @NonNull(message = "所属集团不能为空", serviceLine = "apartment,formOrder")
    private String groupId;

    /**
     *  所属酒店。外键，引用酒店信息表（grp_hotel）的主键（id）。,所属表字段为ord_room_order.hotel_id
     */
    @NonNull(message = "所属酒店不能为空", serviceLine = "apartment,formOrder")
    private String hotelId;
    /**
     *  渠道。,所属表字段为ord_room_order.channel
     */
    @NonNull(message = "渠道不能为空", serviceLine = "apartment,formOrder")
    private Byte channel;

    /**
     *  渠道名称,所属表字段为ord_room_order.channel_name
     */
    private String channelName;
    /**
     *  预订ID。外键，引用预订信息表（ord_reserve）的主键（id）。,所属表字段为ord_room_order.reserve_id
     */
    private String reserveId;
    /**
     *  房间号。,所属表字段为ord_room_order.room_code
     */
    @NonNull(message = "房间号不能为空", serviceLine = "tableOrder,upRoomAndPrice")
    private String roomCode;
    

    /**
     *  房型ID。外键，对应房间类型的主键。,所属表字段为ord_room_order.room_type_id
     */
    @NonNull(message = " 房型不能为空", serviceLine = "tableOrder,upRoomAndPrice")
    private String roomTypeId;

    /**
     *  房型名称。,所属表字段为ord_room_order.room_type_name
     */
    @NonNull(message = " 房型名称不能为空", serviceLine = "tableOrder,upRoomAndPrice")
    private String roomTypeName;

    /**
     *  房间ID。外键，引用房间信息表（hot_room）的主键（id）。,所属表字段为ord_room_order.room_id
     */
    @NonNull(message = "房间ID不能为空", serviceLine = "tableOrder")
    private String roomId;

    /**
     *  应收押金。,所属表字段为ord_room_order.deposit
     */
    private BigDecimal deposit;

    /**
     *  房价。订单的房价。系统滚房费时的房价。,所属表字段为ord_room_order.room_price
     */
    @NonNull(message = "房价不能为空", serviceLine = "tableOrder")
    private BigDecimal roomPrice;

    /**
     *  月租房价。,所属表字段为ord_room_order.month_price
     */
    private BigDecimal monthPrice;

    /**
     *  增加早餐数。,所属表字段为ord_room_order.add_breakfast
     */
    private Integer addBreakfast;

    /**
     *  自带早餐数。,所属表字段为ord_room_order.default_breakfast
     */
    private Integer defaultBreakfast;

    /**
     *  自带早餐数。,所属表字段为ord_room_order.actual_breakfast
     */
    //@NonNull(message = "最终的早餐数不能为空", serviceLine = "tableOrder")
    private Integer actualBreakfast;

    /**
     *  入住标准ID。外键，引用入住标准（hot_checkin_standard）的主键（id）。,所属表字段为ord_room_order.checkin_standard_id
     */
    @NonNull(message = "入住标准ID不能为空", serviceLine = "apartment,formOrder")
    private String checkinStandardId;
    /**
     *  入住标准名称。,所属表字段为ord_room_order.checkin_standard_name
     */
    @NonNull(message = "入住标准名称不能为空", serviceLine = "apartment,formOrder")
    private String checkinStandardName;

    /**
     *  入住类型。,所属表字段为ord_room_order.checkin_type
     */
    @NonNull(message = "入住类型名称不能为空", serviceLine = "apartment,formOrder,upSource")
    private Byte checkinType;
    

    /**
     *  价格方案ID。外键，引用价格方案表（hot_price_scheme）的主键（id）。,所属表字段为ord_room_order.pirce_scheme_id
     */
    //@NonNull(message = "价格方案ID不能为空", serviceLine = "formOrder,upRoom")
    private String priceSchemeId;
    /**
     *  价格方案名称,所属表字段为ord_room_order.price_scheme_name
     */
    //@NonNull(message = "价格方案名称不能为空", serviceLine = "formOrder,upRoom")
    private String priceSchemeName;
    /**
     *  入住时间。,所属表字段为ord_room_order.checkin_time
     */
    private Date checkinTime;

    /**
     *  预离时间。包括离开时间。,所属表字段为ord_room_order.checkout_time
     */
    @NonNull(message = "预离时间不能为空", serviceLine = "apartment,formOrder,upCheckoutTime")
    private Date checkoutTime;

    /**
     *  入住状态。,所属表字段为ord_room_order.checkin_status
     */
    private Byte checkinStatus;

    /**
     *  入住状态名称。,所属表字段为ord_room_order.checkin_status_name
     */
    private String checkinStatusName;

    /**
     *  结账状态。,所属表字段为ord_room_order.settle_status
     */
    private Byte settleStatus;

    /**
     *  结账状态名称。,所属表字段为ord_room_order.settle_status_name
     */
    private String settleStatusName;
    

    /**
     *  主住客ID。外键，引用宾客档案（grp_guest_info）的主键（id）。,所属表字段为ord_room_order.main_guest_id
     */
    private String mainGuestId;

    /**
     *  同来宾客姓名。,所属表字段为ord_room_order.other_guest_name
     */
    private String otherGuestName;

    /**
     *  客户ID。根据客户类型，对应表中的主键。,所属表字段为ord_room_order.custom_id
     */
    private String customId;

    /**
     *  客户类型。,所属表字段为ord_room_order.custom_type
     */
    @NonNull(message = "客户类型不能为空", serviceLine = "apartment,formOrder,upSource")
    private Byte customType;

    /**
     *  客户类型名称。,所属表字段为ord_room_order.custom_type_name
     */
    private String customTypeName;

    /**
     *  销售员。外键，引用员工信息表（grp_employee）的主键（id）。,所属表字段为ord_room_order.sale_id
     */
    private String saleId;

    /**
     *  外键，引用班次表（hot_class）的主键（id）。,所属表字段为ord_room_order.class_id
     */
    private String classId;

    /**
     *  创建用户ID。外键，引用员工表（grp_employee）的主键（id）。,所属表字段为ord_room_order.create_user_id
     */
    private String createUserId;

    /**
     *  更新用户ID。外键，引用员工表（grp_employee）的主键（id）。,所属表字段为ord_room_order.update_user_id
     */
    private String updateUserId;

    /**
     *  走结原因。,所属表字段为ord_room_order.go_reason
     */
    
    private String goReason;

    /**
     *  余额。,所属表字段为ord_room_order.balance
     */
    private BigDecimal balance;

    /**
     *  联房ID。外键，引用联房表（ord_room_order_rela）的主键。,所属表字段为ord_room_order.rela_id
     */
    private String relaId;

    /**
     *  备注。,所属表字段为ord_room_order.remark
     */
    private String remark;

    /**
     *  是否逻辑删除。1表示已逻辑删除，2表示未逻辑删除，默认为2。,所属表字段为ord_room_order.is_deleted
     */
    private Byte isDeleted;

    /**
     *  创建时间。,所属表字段为ord_room_order.gmt_create
     */
    private Date gmtCreate;

    /**
     *  修改时间。,所属表字段为ord_room_order.gmt_modified
     */
    private Date gmtModified;

  
    /**
     *  销售员姓名。,所属表字段为ord_room_order.sale_name
     */
    private String saleName;
    /**
     *  租期。,所属表字段为ord_room_order.rent_type
     */
    @NonNull(message = "租期不能为空", serviceLine = "apartment,formOrder")
    private Byte rentType;

    
    /*------------------------------------------------------*/
    /**
     *  客单名臣。,所属表字段为ord_room_order_guest.acc_name 房号+姓名
     */
    private String accName;

	/**
     *  名称。,所属表字段为grp_guestinfo.name
     */
    @NonNull(message = "姓名不能为空", serviceLine = "apartment,tableOrder,formOrder")
    private String name;
    
    @NonNull(message = "酒店编号不能为空", serviceLine = "apartment,formOrder")
    private String hotelCode;

	/**
     *  ,所属表字段为grp_guestinfo.mobile
     */
    @NonNull(message = "手机号不能为空", serviceLine = "apartment,formOrder")
    private String mobile;
    /**
     *  证件类型。1身份证，2港澳通行证，3护照，4军官证，5其他证件。,所属表字段为grp_guestinfo.certificate_type
     */
    private Byte certificateType;

    /**
     *  证件编号。,所属表字段为grp_guestinfo.certificate_code
     */
    @NonNull(message = "证件编号不能为空", serviceLine = "apartment,tableOrder,formOrder")
    private String certificateCode;
  
    
    /*
     * 模糊查询房间号
     * */
    private String myLike_roomCode;

    /**
     * 姓名
     */
    private String myLike_name;
    /**
     * 手机号
     */
    private String myLike_mobile;
    
    
    /********************************换房*******************************************/
    
    
    /**
     * 开始时间
     */
    private Date startTime;
    /**
     * 结束时间
     */
    private Date endTime;

    /**
     * 未加入订单联房的标识
     */
    
    private Integer relaIdFlag;
    
    
    /*添加*/
    private Integer beginCheckoutDay;

    private Integer endCheckoutDay;

    private Date beginCheckinTime;

    private Date endCheckinTime;
   /*改价原因备注*/
    
    @NonNull(message = "改价原因不能为空", serviceLine = "upPrice")
    private String  reasonRemark;
    

    
    /**
     * yiang营业时间
     */
    private Date businessTime;
    
    
    
    
    public Date getBusinessTime() {
		return businessTime;
	}

	public void setBusinessTime(Date businessTime) {
		this.businessTime = businessTime;
	}

	public Integer getBeginCheckoutDay() {
		return beginCheckoutDay;
	}

	public void setBeginCheckoutDay(Integer beginCheckoutDay) {
		this.beginCheckoutDay = beginCheckoutDay;
	}

	public Integer getEndCheckoutDay() {
		return endCheckoutDay;
	}

	public void setEndCheckoutDay(Integer endCheckoutDay) {
		this.endCheckoutDay = endCheckoutDay;
	}

	public String getReasonRemark() {
		return reasonRemark;
	}
	

	public Byte getRoomManageStatus() {
		return roomManageStatus;
	}

	public void setRoomManageStatus(Byte roomManageStatus) {
		this.roomManageStatus = roomManageStatus;
	}

	public String getRoomManageInfo() {
		return roomManageInfo;
	}

	public void setRoomManageInfo(String roomManageInfo) {
		this.roomManageInfo = roomManageInfo;
	}

	public void setReasonRemark(String reasonRemark) {
		this.reasonRemark = reasonRemark;
	}

	public Date getBeginCheckinTime() {
		return beginCheckinTime;
	}

	public void setBeginCheckinTime(Date beginCheckinTime) {
		this.beginCheckinTime = beginCheckinTime;
	}

	public Date getEndCheckinTime() {
		return endCheckinTime;
	}

	public void setEndCheckinTime(Date endCheckinTime) {
		this.endCheckinTime = endCheckinTime;
	}

	public Integer getRelaIdFlag() {
		return relaIdFlag;
	}

	public void setRelaIdFlag(Integer relaIdFlag) {
		this.relaIdFlag = relaIdFlag;
	}
	public Date getStartTime() {
		return startTime;
	}

	public void setStartTime(Date startTime) {
		this.startTime = startTime;
	}

	public Date getEndTime() {
		return endTime;
	}

	public void setEndTime(Date endTime) {
		this.endTime = endTime;
	}



	public String getMyLike_roomCode() {
		return myLike_roomCode;
	}

	public void setMyLike_roomCode(String myLike_roomCode) {
		this.myLike_roomCode = myLike_roomCode;
	}

	public String getMyLike_name() {
		return myLike_name;
	}

	public void setMyLike_name(String myLike_name) {
		this.myLike_name = myLike_name;
	}

	public String getMyLike_mobile() {
		return myLike_mobile;
	}

	public void setMyLike_mobile(String myLike_mobile) {
		this.myLike_mobile = myLike_mobile;
	}

	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}

	public String getRoomOrderNo() {
		return roomOrderNo;
	}
	public String getAccName() {
		return accName;
	}

	public void setAccName(String accName) {
		this.accName = accName;
	}
	 
	public Byte getRentType() {
		return rentType;
	}

	public void setRentType(Byte rentType) {
		this.rentType = rentType;
	}

	public String getRoomCode() {
		return roomCode;
	}
	public String getCheckinStandardName() {
		return checkinStandardName;
	}

	public void setCheckinStandardName(String checkinStandardName) {
		this.checkinStandardName = checkinStandardName;
	}

	public String getPriceSchemeName() {
		return priceSchemeName;
	}


	public void setPriceSchemeName(String priceSchemeName) {
		this.priceSchemeName = priceSchemeName;
	}

	public String getRoomTypeId() {
		return roomTypeId;
	}

	public void setRoomTypeId(String roomTypeId) {
		this.roomTypeId = roomTypeId;
	}

	public String getRoomTypeName() {
		return roomTypeName;
	}

	public void setRoomTypeName(String roomTypeName) {
		this.roomTypeName = roomTypeName;
	}

	public String getSaleName() {
		return saleName;
	}

	public void setSaleName(String saleName) {
		this.saleName = saleName;
	}

	public void setRoomCode(String roomCode) {
		this.roomCode = roomCode;
	}

	public String getHotelCode() {
			return hotelCode;
		}

		public void setHotelCode(String hotelCode) {
			this.hotelCode = hotelCode;
		}

	public void setRoomOrderNo(String roomOrderNo) {
		this.roomOrderNo = roomOrderNo;
	}

	public String getHotelId() {
		return hotelId;
	}

	public void setHotelId(String hotelId) {
		this.hotelId = hotelId;
	}

	public String getReserveId() {
		return reserveId;
	}

	public void setReserveId(String reserveId) {
		this.reserveId = reserveId;
	}

	public String getRoomId() {
		return roomId;
	}

	public void setRoomId(String roomId) {
		this.roomId = roomId;
	}

	public BigDecimal getDeposit() {
		return deposit;
	}

	public void setDeposit(BigDecimal deposit) {
		this.deposit = deposit;
	}

	public BigDecimal getRoomPrice() {
		return roomPrice;
	}

	public void setRoomPrice(BigDecimal roomPrice) {
		this.roomPrice = roomPrice;
	}

	public BigDecimal getMonthPrice() {
		return monthPrice;
	}

	public void setMonthPrice(BigDecimal monthPrice) {
		this.monthPrice = monthPrice;
	}

	public Integer getAddBreakfast() {
		return addBreakfast;
	}

	public void setAddBreakfast(Integer addBreakfast) {
		this.addBreakfast = addBreakfast;
	}

	public Integer getDefaultBreakfast() {
		return defaultBreakfast;
	}

	public void setDefaultBreakfast(Integer defaultBreakfast) {
		this.defaultBreakfast = defaultBreakfast;
	}

	public Integer getActualBreakfast() {
		return actualBreakfast;
	}

	public void setActualBreakfast(Integer actualBreakfast) {
		this.actualBreakfast = actualBreakfast;
	}

	public String getCheckinStandardId() {
		return checkinStandardId;
	}

	public void setCheckinStandardId(String checkinStandardId) {
		this.checkinStandardId = checkinStandardId;
	}

	public Byte getCheckinType() {
		return checkinType;
	}

	public void setCheckinType(Byte checkinType) {
		this.checkinType = checkinType;
	}



	public String getPriceSchemeId() {
		return priceSchemeId;
	}

	public void setPriceSchemeId(String priceSchemeId) {
		this.priceSchemeId = priceSchemeId;
	}

	public Date getCheckinTime() {
		return checkinTime;
	}

	public void setCheckinTime(Date checkinTime) {
		this.checkinTime = checkinTime;
	}

	public Date getCheckoutTime() {
		return checkoutTime;
	}

	public void setCheckoutTime(Date checkoutTime) {
		this.checkoutTime = checkoutTime;
	}

	public Byte getCheckinStatus() {
		return checkinStatus;
	}

	public void setCheckinStatus(Byte checkinStatus) {
		this.checkinStatus = checkinStatus;
	}

	public String getCheckinStatusName() {
		return checkinStatusName;
	}

	public void setCheckinStatusName(String checkinStatusName) {
		this.checkinStatusName = checkinStatusName;
	}

	public Byte getSettleStatus() {
		return settleStatus;
	}

	public void setSettleStatus(Byte settleStatus) {
		this.settleStatus = settleStatus;
	}

	public String getSettleStatusName() {
		return settleStatusName;
	}

	public void setSettleStatusName(String settleStatusName) {
		this.settleStatusName = settleStatusName;
	}

	public String getMainGuestId() {
		return mainGuestId;
	}

	public void setMainGuestId(String mainGuestId) {
		this.mainGuestId = mainGuestId;
	}

	public String getOtherGuestName() {
		return otherGuestName;
	}

	public void setOtherGuestName(String otherGuestName) {
		this.otherGuestName = otherGuestName;
	}

	public String getCustomId() {
		return customId;
	}

	public void setCustomId(String customId) {
		this.customId = customId;
	}

	public Byte getCustomType() {
		return customType;
	}

	public void setCustomType(Byte customType) {
		this.customType = customType;
	}

	public String getCustomTypeName() {
		return customTypeName;
	}

	public void setCustomTypeName(String customTypeName) {
		this.customTypeName = customTypeName;
	}

	public String getSaleId() {
		return saleId;
	}

	public void setSaleId(String saleId) {
		this.saleId = saleId;
	}

	public String getClassId() {
		return classId;
	}

	public void setClassId(String classId) {
		this.classId = classId;
	}

	public String getCreateUserId() {
		return createUserId;
	}

	public void setCreateUserId(String createUserId) {
		this.createUserId = createUserId;
	}

	public String getUpdateUserId() {
		return updateUserId;
	}

	public void setUpdateUserId(String updateUserId) {
		this.updateUserId = updateUserId;
	}

	public String getGoReason() {
		return goReason;
	}

	public void setGoReason(String goReason) {
		this.goReason = goReason;
	}

	public BigDecimal getBalance() {
		return balance;
	}

	public void setBalance(BigDecimal balance) {
		this.balance = balance;
	}

	public String getRelaId() {
		return relaId;
	}

	public void setRelaId(String relaId) {
		this.relaId = relaId;
	}

	public String getRemark() {
		return remark;
	}

	public void setRemark(String remark) {
		this.remark = remark;
	}

	public Byte getIsDeleted() {
		return isDeleted;
	}

	public void setIsDeleted(Byte isDeleted) {
		this.isDeleted = isDeleted;
	}

	public Date getGmtCreate() {
		return gmtCreate;
	}

	public void setGmtCreate(Date gmtCreate) {
		this.gmtCreate = gmtCreate;
	}

	public Date getGmtModified() {
		return gmtModified;
	}

	public void setGmtModified(Date gmtModified) {
		this.gmtModified = gmtModified;
	}

	public Byte getChannel() {
		return channel;
	}

	public void setChannel(Byte channel) {
		this.channel = channel;
	}

	public String getChannelName() {
		return channelName;
	}

	public void setChannelName(String channelName) {
		this.channelName = channelName;
	}

	public String getGroupId() {
		return groupId;
	}

	public void setGroupId(String groupId) {
		this.groupId = groupId;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getMobile() {
		return mobile;
	}

	public void setMobile(String mobile) {
		this.mobile = mobile;
	}

	public Byte getCertificateType() {
		return certificateType;
	}

	public void setCertificateType(Byte certificateType) {
		this.certificateType = certificateType;
	}

	public String getCertificateCode() {
		return certificateCode;
	}

	public void setCertificateCode(String certificateCode) {
		this.certificateCode = certificateCode;
	}
	
    
}
